// 获取数据库信息
const db = wx.cloud.database()

Page({

  /**
   * 页面的初始数据
   */
  data: {
    imgUrls: [
      { "fileId": "https://images.unsplash.com/photo-1551334787-21e6bd3ab135?w=640" },
      { "fileId": "https://images.unsplash.com/photo-1551214012-84f95e060dee?w=640" },
      { "fileId": "https://images.unsplash.com/photo-1551446591-142875a901a1?w=640" }
    ],
    listData: [],    // 列表数据
    current: 'links'   // 默认tab标志
  },

  /**
   * 生命周期函数--监听页面加载
   */
  onLoad: function (options) {

  },

  /**
   * 生命周期函数--监听页面初次渲染完成
   */
  onReady: function () {
    this.getListData();
  },

  /**
   * 生命周期函数--监听页面显示
   */
  onShow: function () {

  },

  /**
   * 生命周期函数--监听页面隐藏
   */
  onHide: function () {

  },

  /**
   * 生命周期函数--监听页面卸载
   */
  onUnload: function () {

  },

  /**
   * 页面相关事件处理函数--监听用户下拉动作
   */
  onPullDownRefresh: function () {

  },

  /**
   * 页面上拉触底事件的处理函数
   */
  onReachBottom: function () {

  },

  /**
   * 用户点击右上角分享
   */
  onShareAppMessage: function () {

  },

  // 获取Banner列表
  getBannerList() {
    db.collection('banner').get().then((res) => {
      this.setData({
        imgUrls: res.data
      });
    });
  },

  // 获取列表数据
  getListData() {
    //此时选中的tab
    let orderField = this.data.current;
    //获取users表中的数据
    db.collection('users')
      .field({  // 过滤返回的字段
        userPhoto: true,
        nickName: true,
        links: true
      })
      .orderBy(orderField, 'desc')  // 先按选中的tab排序,再按desc排序
      .get()  // 获取所有行
      .then((res) => {
        this.setData({
          listData: res.data
        });
      });
  },

  // 切换tab
  handleCurrent(ev) {
    //从页面传递过来的tab标志
    let current = ev.target.dataset.current;
    //若此次点击和上次点击是同一个tab,则返回false
    if (current == this.data.current) {
      return false;
    }
    this.setData({
      current
    }, () => {
      this.getListData();
    });
  },

  // 点赞
  handleLinks(ev) {
    // 获取页面传递过来的id
    let id = ev.target.dataset.id;
    // 使用云函数更新点赞操作
    wx.cloud.callFunction({
      name: 'update',    //调用更新函数
      data: {    //传到云函数的参数
        collection: 'users',
        doc: id,
        data: "{links : _.inc(1)}"    //当一个整体传递给后台，目的：方便后台解析
      }
    }).then((res) => {
      // 获取更新状态
      let updated = res.result.stats.updated;
      if (updated) {
        //不要在原始数据上进行修改，因此clone一份数据
        let cloneListData = [...this.data.listData];
        for (let i = 0; i < cloneListData.length; i++) {
          if (cloneListData[i]._id == id) {
            cloneListData[i].links++;
          }
        }
        //重新设置数据
        this.setData({
          listData: cloneListData
        });
      }
    });
  },

  // 点击进入详情页面
  handleDetail(ev) {
    let id = ev.target.dataset.id;
    wx.navigateTo({
      url: '/pages/detail/detail?userId=' + id
    })
  }
  

})